package org.example.controller;

import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.example.Annoation.Log;
import org.example.common.Result;
import org.example.entity.Dept;
import org.example.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.io.InputStream;
import java.util.List;
@RequestMapping("/TliasWebManager")
@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;
//    查询部门所有信息
    @GetMapping("/depts")
    public Result list(){
        //调用Service层的方法去查询部门信息
        List<Dept> deptList =  deptService.listAll();
        //处理返回值 并封装结果
        return Result.success(deptList);
    }
//根据部门id删除部门接口  参数接收 @RequestParam  @RequestParam注解required属性默认为true，代表该参数必须传递，如果不传递将报错。
//  如果请求参数名与形参变量名相同，直接定义方法形参即可接收
    @DeleteMapping("/depts")
    @Log
    public Result deleteDept(@RequestParam Integer id){
        //调用Service中的删除方法 根据部门id删除部门信息
        deptService.deleteDeptById(id);
        return Result.success();
    }
//添加部门  json参数的接收 用@RequestBody
    @PostMapping("/depts")
    @Log
    public Result addDept(@RequestBody Dept dept){
        deptService.addDeptWithDept(dept);
        return Result.success();
    }
//根据部门id查询数据 {id}标识路径参数 用@PathVariable接收路径参数
    @GetMapping("/depts/{id}")
    public Result getDeptById(@PathVariable Integer id){
        Dept dept = deptService.getInfo(id);
        return Result.success(dept);
    }
//修改部门数据 在service层补充完整数据
    @PutMapping("/depts")
    @Log
    public Result updateByDept(@RequestBody Dept dept){
        deptService.update(dept);
        return Result.success();
    }

}
